import uuid

import pandas as pd

dataFrame1 = pd.DataFrame(pd.read_excel('员工1.xlsx'))
dataFrame2 = pd.DataFrame(pd.read_excel('员工2.xlsx'))
###相同字段，合并时起别名
_excel1='_excel1'
_excel2='_excel2'
outerJoinKey=['姓名', '部门']
####全链接 how='outer' ;初步的比对结果
mergeDataFrame = pd.merge(dataFrame1, dataFrame2, on=outerJoinKey, how='outer', suffixes=(_excel1, _excel2), indicator='关联结果')
#########################################数据加工处理(找出相同列，不同列,并按excel1,excel2,compare。。。输出结果)###########################################################
# 获取两个DataFrame的列名集合
columns_set1 = set(dataFrame1.columns)
columns_set2 = set(dataFrame2.columns)
# 找出两个集合中相同的列名
common_columns = columns_set1.intersection(columns_set2)
# 如果想要找出所有不相同的列（不管在哪个文件中），可以使用symmetric_difference
all_different_columns = columns_set1.symmetric_difference(columns_set2)
# 过滤掉关联条件
for join_key in outerJoinKey:
    common_columns.remove(join_key)

###相同的列名，比对下结果,并添加到DataFrame
for common_headName in common_columns:
    #比对结果
    comparison_result = mergeDataFrame[common_headName+_excel1] == mergeDataFrame[common_headName+_excel2]
    #添加一个列，存放比较结果
    mergeDataFrame[common_headName+'-比对结果'] = comparison_result
###定义输出结果字段，例如['姓名', '部门', '电话_excel1', '电话_excel2', '电话-比对结果']
ouput_columns_list=[]
for outerJoinKeyTmp in  outerJoinKey:
    ouput_columns_list.append(outerJoinKeyTmp)
ouput_columns_list.append('关联结果')

for common_headName in common_columns:
    ouput_columns_list.append(common_headName+_excel1)
    ouput_columns_list.append(common_headName+_excel2)
    ouput_columns_list.append(common_headName+'-比对结果')
for diff_headName in all_different_columns:
    ouput_columns_list.append(diff_headName)
selected_columns_data = mergeDataFrame[ouput_columns_list]  # 选择你想要的列
# 生成一个UUID
unique_id = uuid.uuid4()
# 将UUID对象转换为字符串
uuid_str = str(unique_id)
selected_columns_data.to_excel(uuid_str+"comareResult.xlsx")
# 打印比较结果
print(selected_columns_data)
